package com.sright.bcard.content.dal.dao;

import com.sright.bcard.common.service.share.base.dao.BaseDAO;
import com.sright.bcard.common.service.share.dto.page.PageParamRequest;
import com.sright.bcard.content.dal.entity.UserDO;
import com.sright.bcard.content.dal.result.EnterpriseMemberResult;

import java.util.List;
import java.util.Map;

public interface UserDAO extends BaseDAO<UserDO> {

    int deleteByPrimaryKey(Long id);

    List<UserDO> selectByEnterpriseId(Long enterpriseId);

    List<UserDO> selectVerifyUser(Long memberId);

    UserDO selectVerifyEnterpriseUser(Long memberId);

    UserDO selectUnVerifyUser(Long id);

    Integer unbind(Long id);

    Map<Long, Long>  selectUserCountGroupByEnterprise(List<Long> enterpriseIdList);

    Long selectBindUserNumById(Long enterpriseId);

    Integer selectUserCountByEnterpriseId(Long enterpriseId, String keywords);

    List<EnterpriseMemberResult> selectUserInfoByEnterpriseId(Long enterpriseId, String keywords, PageParamRequest paramRequest);

    Long selectCreatedUserNum(Long enterpriseId);

    Long selectPersonalUserIdByOldId(Long oldPersonalUserId);

    Long selectEnterpriserUserIdByOldId(Long oldEnterpriseUserId);

    List<UserDO> selectAllUserByMemberId(Long id);

    Integer updateDelete(Long id);
}

